VERSION 1.0 CLASS
BEGIN
  MultiUse = -1  'True
  Persistable = 0  'NotPersistable
  DataBindingBehavior = 0  'vbNone
  DataSourceBehavior  = 0  'vbNone
  MTSTransactionMode  = 0  'NotAnMTSObject
END
Attribute VB_Name = "DAOProducto"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = True
Attribute VB_PredeclaredId = False
Attribute VB_Exposed = False
Attribute VB_Ext_KEY = "SavedWithClassBuilder6" ,"Yes"
Attribute VB_Ext_KEY = "Top_Level" ,"Yes"
'---------------------------------------------------------------------------------------
' Module    : DAOProducto
' DateTime  : 30/11/2011 12:13
' Author    :
' Purpose   : Clase DAO Producto
'---------------------------------------------------------------------------------------
Option Explicit
Private mvarConnection As utilConexion
Public Property Set Connection(ByVal vData As utilConexion)
    Set mvarConnection = vData
End Property

Public Function getBean(ByVal bean As bproducto) As bproducto
On Error GoTo hnderr
Dim result As bproducto
Dim sql As String
Dim rst As New Recordset
    sql = ""
    sql = "SELECT p.ncodigo, p.sdescorta, p.sdeslarga, p.ncategoria, c.sdescorta as scategoria, p.nestado, e.sdescripcion as sestado,  "
    sql = sql + " p.ncodigodestino , d.sdescripcion as sdestino, d.snomImpresora"
    sql = sql + "    FROM producto p "
    sql = sql + "    LEFT JOIN destino d "
    sql = sql + "ON d.ncodigo = p.ncodigodestino "
    sql = sql + "INNER JOIN estado e "
    sql = sql + "ON e.ncodigo= p.nestado "
    sql = sql + "INNER JOIN categoria c "
    sql = sql + "ON c.ncodigo = p.ncategoria "
    sql = sql + "LEFT OUTER JOIN tipo t "
    sql = sql + "ON p.ntipo=t.ncodigo "
    sql = sql + "INNER JOIN almacen a "
    sql = sql + "ON p.nalmdescarga=a.ncodigo "
    sql = sql + "  Where p.nCodigo = '" + CStr(bean.ncodigo) + "' "
rst.Open sql, mvarConnection.Connection, adOpenForwardOnly

If Not rst.EOF Then
    Set result = New bproducto
    If Not IsNull(rst.Fields("nCodigo")) Then result.ncodigo = rst.Fields("nCodigo").value
    If Not IsNull(rst.Fields("sdescorta")) Then result.sdescripcionCorta = rst.Fields("sdescorta").value
    If Not IsNull(rst.Fields("sdeslarga")) Then result.sdescripcionLarga = rst.Fields("sdeslarga").value
    If Not IsNull(rst.Fields("ncategoria")) Then result.bCategoria.ncodigo = rst.Fields("ncategoria").value
    If Not IsNull(rst.Fields("scategoria")) Then result.bCategoria.sdescripcionCorta = rst.Fields("scategoria").value
    If Not IsNull(rst.Fields("nestado")) Then result.bEstado.ncodigo = rst.Fields("nestado").value
    If Not IsNull(rst.Fields("sestado")) Then result.bEstado.sdescripcion = rst.Fields("sestado").value
    If Not IsNull(rst.Fields("ncodigodestino")) Then result.bdestino.ncodigodestino = rst.Fields("ncodigodestino")
    If Not IsNull(rst.Fields("sdestino")) Then result.bdestino.sdescripcion = rst.Fields("sdestino").value
    If Not IsNull(rst.Fields("snomImpresora")) Then result.bdestino.snombreimpresora = rst.Fields("snomImpresora").value
   
End If
Set getBean = result
hnderr:
If Err.Number = 0 Then Exit Function
Err.Clear
End Function
Public Function getPagina(bean As bproducto, ByRef bpaginador As bpaginador) As Collection
On Error GoTo hnderr
Dim sql As String
Dim rst As New Recordset
Dim list As New Collection
Dim record As New bproducto
Dim bPaginadorRecuperado  As Boolean
sql = "SELECT ncodigo , sdescorta , sdeslarga , ncategoria , scategoria ,"
sql = sql + " nestado , sestado , nprecio , scodbarra,  ntotalregistros , simagen from "
sql = sql + " proc_producto_lista_botonera ( " + CStr(bean.bCategoria.ncodigo) + ","
sql = sql + CStr(bean.bEstado.ncodigo) + "," + CStr(bpaginador.nRegistrosxPagina) + ","
sql = sql + CStr(bpaginador.nIndice) + ")"

rst.Open sql, mvarConnection.Connection, adOpenForwardOnly

While Not rst.EOF
    Set record = New bproducto
    If Not IsNull(rst.Fields("nCodigo")) Then record.ncodigo = rst.Fields("nCodigo").value
    If Not IsNull(rst.Fields("sdescorta")) Then record.sdescripcionCorta = rst.Fields("sdescorta").value
    If Not IsNull(rst.Fields("sdeslarga")) Then record.sdescripcionLarga = rst.Fields("sdeslarga").value
    If Not IsNull(rst.Fields("ncategoria")) Then record.bCategoria.ncodigo = rst.Fields("ncategoria").value
    If Not IsNull(rst.Fields("scategoria")) Then record.bCategoria.sdescripcionCorta = rst.Fields("scategoria").value
    If Not IsNull(rst.Fields("scodbarra")) Then record.sCodBarra = rst.Fields("scodbarra")
    If Not IsNull(rst.Fields("nestado")) Then record.bEstado.ncodigo = rst.Fields("nestado").value
    If Not IsNull(rst.Fields("sestado")) Then record.bEstado.sdescripcion = rst.Fields("sestado").value
    If Not IsNull(rst.Fields("nprecio")) Then record.nPrecio = rst.Fields("nprecio").value
    If Not bPaginadorRecuperado Then
        If Not IsNull(rst.Fields("ntotalregistros")) Then bpaginador.nRegistrosTotal = rst.Fields("ntotalregistros").value
        bpaginador.nPaginas = bpaginador.nRegistrosTotal \ bpaginador.nRegistrosxPagina + IIf(bpaginador.nRegistrosTotal Mod bpaginador.nRegistrosxPagina > 0, 1, 0)
        bPaginadorRecuperado = True
    End If
    If Not IsNull(rst.Fields("simagen")) Then record.imagen = rst.Fields("simagen").value
    rst.MoveNext
    list.Add record
Wend
Set getPagina = list

hnderr:
If Err.Number = 0 Then Exit Function
Err.Clear
End Function

Public Function getLista(bean As bproducto) As Collection
On Error GoTo hnderr
Dim sql As String
Dim rst As New Recordset
Dim list As New Collection
Dim record As New bproducto

sql = "SELECT ncodigo , sdescorta , sdeslarga , ncategoria , scategoria ,"
sql = sql + " nestado , sestado , nprecio ,scodbarra,  ntotalregistros , simagen , ndestino, sdestino from "
sql = sql + " proc_producto_lista_estado ( " + CStr(bean.bEstado.ncodigo) + ")"

rst.Open sql, mvarConnection.Connection, adOpenForwardOnly

While Not rst.EOF
    Set record = New bproducto
    If Not IsNull(rst.Fields("nCodigo")) Then record.ncodigo = rst.Fields("nCodigo").value
    If Not IsNull(rst.Fields("sdescorta")) Then record.sdescripcionCorta = rst.Fields("sdescorta").value
    If Not IsNull(rst.Fields("sdeslarga")) Then record.sdescripcionLarga = rst.Fields("sdeslarga").value
    If Not IsNull(rst.Fields("ncategoria")) Then record.bCategoria.ncodigo = rst.Fields("ncategoria").value
    If Not IsNull(rst.Fields("scategoria")) Then record.bCategoria.sdescripcionCorta = rst.Fields("scategoria").value
    If Not IsNull(rst.Fields("nestado")) Then record.bEstado.ncodigo = rst.Fields("nestado").value
    If Not IsNull(rst.Fields("sestado")) Then record.bEstado.sdescripcion = rst.Fields("sestado").value
    If Not IsNull(rst.Fields("nprecio")) Then record.nPrecio = rst.Fields("nprecio").value
    If Not IsNull(rst.Fields("scodbarra")) Then record.sCodBarra = rst.Fields("scodbarra").value
    If Not IsNull(rst.Fields("simagen")) Then record.imagen = rst.Fields("simagen").value
    If Not IsNull(rst.Fields("ndestino")) Then record.bdestino.ncodigodestino = rst.Fields("ndestino").value
    If Not IsNull(rst.Fields("sdestino")) Then record.bdestino.sdescripcion = rst.Fields("sdestino").value
    rst.MoveNext
    list.Add record
Wend
Set getLista = list

hnderr:
If Err.Number = 0 Then Exit Function
Err.Clear
End Function
